package beans;

import java.util.List;

import javax.naming.NamingException;

import org.richfaces.component.html.HtmlDataTable;

import co.edu.uniquindio.ondas.delegados.AdministradorDelegado;
import co.edu.uniquindio.ondas.dtos.ResumenHistorialAsesorDTO;
import co.edu.uniquindio.ondas.entidades.Asesor;

/**
 * @author Javier
 *Bean del Historial de un Asesor
 */
public class HistorialAsesorBean {
	private AdministradorDelegado administradorDelegado;
	private List<Asesor> asesores;
	/**
	 * Tabla donde se muestra la informacion de un Asesor
	 */
	private HtmlDataTable tablaAsesor;
	private Asesor asesorSeleccionado=new Asesor();
	
	/**
	 * DTO Resumen Historial de un Asesor 
	 */
	private List<ResumenHistorialAsesorDTO> resumenHistorial;
	
	/**
	 *Metodo constructor
	 * @throws NamingException
	 */
	public HistorialAsesorBean() throws NamingException {
		administradorDelegado=new AdministradorDelegado();
	}
	
	/**
	 * Metodo que permite obtener los Asesores que tienen asignados investigaciones
	 * @return "historialAsesor"
	 */
	public String obtenerAsesoresConInvestigacion()
	{
		asesores=administradorDelegado.obtenerAsesoresConInvestigaciones();
		
		return "historialAsesor";
	}
	
	/**
	 * Metodo que permite obtener el historial de un Asesor
	 * @return "resumenHistorialAsesor"
	 */
	public String obtenerHistorial()
	{
		asesorSeleccionado=(Asesor) getTablaAsesor().getRowData();
		resumenHistorial=administradorDelegado.obtenerHistorialAsesor(asesorSeleccionado.getIdentificacion());
		return "resumenHistorialAsesor";
	}

	/**
	 *Metodo accesor del atributo asesores
	 * @return the asesores
	 */
	public List<Asesor> getAsesores() {
		return asesores;
	}

	/**
	 *Metodo Modificador del atributo asesores
	 * @param asesores the asesores to set
	 */
	public void setAsesores(List<Asesor> asesores) {
		this.asesores = asesores;
	}

	/**
	 *Metodo accesor del atributo tablaAsesor
	 * @return the tablaAsesor
	 */
	public HtmlDataTable getTablaAsesor() {
		return tablaAsesor;
	}

	/**
	 *Metodo Modificador del atributo tablaAsesor
	 * @param tablaAsesor the tablaAsesor to set
	 */
	public void setTablaAsesor(HtmlDataTable tablaAsesor) {
		this.tablaAsesor = tablaAsesor;
	}

	/**
	 *Metodo accesor del atributo asesorSeleccionado
	 * @return the asesorSeleccionado
	 */
	public Asesor getAsesorSeleccionado() {
		return asesorSeleccionado;
	}

	/**
	 *Metodo Modificador del atributo asesorSeleccionado
	 * @param asesorSeleccionado the asesorSeleccionado to set
	 */
	public void setAsesorSeleccionado(Asesor asesorSeleccionado) {
		this.asesorSeleccionado = asesorSeleccionado;
	}

	/**
	 *Metodo accesor del atributo resumenHistorial
	 * @return the resumenHistorial
	 */
	public List<ResumenHistorialAsesorDTO> getResumenHistorial() {
		return resumenHistorial;
	}

	/**
	 *Metodo Modificador del atributo resumenHistorial
	 * @param resumenHistorial the resumenHistorial to set
	 */
	public void setResumenHistorial(List<ResumenHistorialAsesorDTO> resumenHistorial) {
		this.resumenHistorial = resumenHistorial;
	}
	
}
